package opf5.entities.condicionesInscripcion;

import java.util.ArrayList;
import java.util.List;

import opf5.entities.dominio.Inscripcion;
import opf5.entities.dominio.Jugador;
import opf5.entities.dominio.Partido;
import opf5.entities.inscripciones.CondicionDeInscripcion;

public class CondicionJugadoresEdad implements CondicionDeInscripcion{
	private int cantidadJugadoresMenores;
	private int edad;
	
	public CondicionJugadoresEdad(int edad, int cantidadJugadoresMenores) {
		this.edad = edad;
		this.cantidadJugadoresMenores = cantidadJugadoresMenores;
	}

	@Override
	public boolean verificaCondicion(Partido partido) {
		List<Jugador> jugadoresMenores = getJugadoresMenores(partido);
		
		return jugadoresMenores.size() <= cantidadJugadoresMenores;
	}

	private List<Jugador> getJugadoresMenores(Partido partido) {
		List<Jugador> jugadoresMenores = new ArrayList<Jugador>();
		
		for (Inscripcion i : partido.getInscripciones()) {
			if (i.getJugador().getFechaNac().calcularEdad() < edad)
				jugadoresMenores.add(i.getJugador());
		}
		
		return jugadoresMenores;
	}

}
